From ae79b4c5e5213f6ecaef4312a2b14eb193835ae6 Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Thu, 11 Sep 2008 16:51:13 +0100 Subject: [PATCH] ACPI: Grant access of MSR_IA32_THERM_CONTROL MSR to dom0 The purpose is to support dom0 throttling control via MSR. Signed-off-by: Wei Gang --- xen/arch/x86/traps.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c index f7fdb4d1f2..f40a1ed3f7 100644 --- a/xen/arch/x86/traps.c +++ b/xen/arch/x86/traps.c @@ -2154,6 +2154,12 @@ static int emulate_privileged_op(struct cpu_user_regs *regs) if ( wrmsr_safe(regs->ecx, eax, edx) != 0 ) goto fail; break; + case MSR_IA32_THERM_CONTROL: + if ( boot_cpu_data.x86_vendor != X86_VENDOR_INTEL ) + goto fail; + if ( wrmsr_safe(regs->ecx, eax, edx) != 0 ) + goto fail; + break; default: if ( wrmsr_hypervisor_regs(regs->ecx, eax, edx) ) break; @@ -2230,6 +2236,12 @@ static int emulate_privileged_op(struct cpu_user_regs *regs) MSR_IA32_MISC_ENABLE_PEBS_UNAVAIL | MSR_IA32_MISC_ENABLE_XTPR_DISABLE; break; + case MSR_IA32_THERM_CONTROL: + if ( boot_cpu_data.x86_vendor != X86_VENDOR_INTEL ) + goto fail; + if ( rdmsr_safe(regs->ecx, regs->eax, regs->edx) ) + goto fail; + break; default: if ( rdmsr_hypervisor_regs(regs->ecx, &l, &h) ) { -- 2.30.2